home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / misc / amag / sh9301e.lha / Maxon-CPP-Demo / Include / intuition / intuition.h
C/C++ Source or Header  |  1993-02-17  |  5KB  |  183 lines

  1. #ifndef INTUITION_INTUITION_H
  2. #define INTUITION_INTUITION_H TRUE
  3.  
  4. struct RastPort
  5. {
  6.     APTR Layer;
  7.     APTR BitMap;
  8.     APTR AreaPtrn;         /* ptr to areafill pattern */
  9.     APTR TmpRas;
  10.     APTR AreaInfo;
  11.     APTR GelsInfo;
  12.     UBYTE   Mask;          /* write mask for this raster */
  13.     BYTE    FgPen;          /* foreground pen for this raster */
  14.     BYTE    BgPen;          /* background pen  */
  15.     BYTE    AOlPen;          /* areafill outline pen */
  16.     BYTE    DrawMode;          /* drawing mode for fill, lines, and text */
  17.     BYTE    AreaPtSz;          /* 2^n words for areafill pattern */
  18.     BYTE    linpatcnt;          /* current line drawing pattern preshift */
  19.     BYTE    dummy;
  20.     UWORD  Flags;         /* miscellaneous control bits */
  21.     UWORD  LinePtrn;         /* 16 bits for textured lines */
  22.     WORD   cp_x, cp_y;         /* current pen position */
  23.     UBYTE   minterms[8];
  24.     WORD   PenWidth;
  25.     WORD   PenHeight;
  26.     APTR Font;   /* current font address */
  27.     UBYTE   AlgoStyle;          /* the algorithmically generated style */
  28.     UBYTE   TxFlags;          /* text specific flags */
  29.     UWORD   TxHeight;          /* text height */
  30.     UWORD   TxWidth;          /* text nominal width */
  31.     UWORD   TxBaseline;       /* text baseline */
  32.     WORD    TxSpacing;          /* text spacing (per character) */
  33.     APTR    *RP_User;
  34.     ULONG   longreserved[2];
  35. #ifndef GFX_RASTPORT_1_2
  36.     UWORD   wordreserved[7];  /* used to be a node */
  37.     UBYTE   reserved[8];      /* for future use */
  38. #endif
  39. };
  40.  
  41.  
  42.  
  43. /* --- IDCMP Classes ------------------------------------------------------ */
  44. /* Please refer to the Autodoc for OpenWindow() and to the Rom Kernel
  45.  * Manual for full details on the IDCMP classes.
  46.  */
  47. #define IDCMP_CLOSEWINDOW 0x00000200
  48.  
  49. #define WBENCHSCREEN    0x0001    /* identifies the Workbench screen    */
  50.  
  51.  
  52.  
  53. struct Window
  54. {
  55.      APTR NextWindow;
  56.  
  57.     WORD LeftEdge, TopEdge;  /* screen dimensions of window */
  58.     WORD Width, Height;   /* screen dimensions of window */
  59.  
  60.     WORD MouseY, MouseX;  /* relative to upper-left of window */
  61.  
  62.     WORD MinWidth, MinHeight;  /* minimum sizes */
  63.     UWORD MaxWidth, MaxHeight;  /* maximum sizes */
  64.  
  65.     ULONG Flags;   /* see below for defines */
  66.  
  67.      APTR MenuStrip;
  68.  
  69.     UBYTE *Title;   /* the title text for this window */
  70.  
  71.      APTR FirstRequester;
  72.  
  73.      APTR DMRequest;
  74.  
  75.     WORD ReqCount;   /* count of reqs blocking Window */
  76.  
  77.      APTR WScreen;
  78.      APTR RPort;
  79.  
  80.     BYTE BorderLeft, BorderTop, BorderRight, BorderBottom;
  81.      APTR BorderPRort;
  82.  
  83.      APTR FirstGadget;
  84.  
  85.     /* these are for opening/closing the windows */
  86.      APTR Prarent, Descendant;
  87.  
  88.     /* sprite data information for your own Pointer
  89.      * set these AFTER you Open the Window by calling SetPointer()
  90.      */
  91.     UWORD *Pointer; /* sprite data */
  92.     BYTE PtrHeight; /* sprite height (not including sprite padding) */
  93.     BYTE PtrWidth; /* sprite width (must be less than or equal to 16) */
  94.     BYTE XOffset, YOffset; /* sprite offsets */
  95.  
  96.     /* the IDCMP Flags and User's and Intuition's Message Ports */
  97.     ULONG IDCMPFlags; /* User-selected flags */
  98.  
  99.     struct MsgPort *UserPort;
  100.      APTR WindowPort;
  101.      APTR MessageKey;
  102.  
  103.     UBYTE DetailPen, BlockPen; /* for bar/border/gadget rendering */
  104.  
  105.      APTR CeckMark;
  106.  
  107.     UBYTE *ScreenTitle; /* if non-null, Screen title when Window is active */
  108.  
  109.     WORD GZZMouseX;
  110.     WORD GZZMouseY;
  111.     /* these variables contain the width and height of the inner-Window of
  112.      * WFLG_GIMMEZEROZERO Windows
  113.      */
  114.     WORD GZZWidth;
  115.     WORD GZZHeight;
  116.  
  117.     UBYTE *ExtData;
  118.  
  119.     BYTE *UserData; /* general-purpose pointer to User data extension */
  120.  
  121.     /** 11/18/85: this pointer keeps a duplicate of what
  122.      * Window.RPort->Layer is _supposed_ to be pointing at
  123.      */
  124.      APTR WLayer;
  125.  
  126.     /* NEW 1.2: need to keep track of the font that
  127.      * OpenWindow opened, in case user SetFont's into RastPort
  128.      */
  129.      APTR IFont;
  130.  
  131.     /* (V36) another flag word (the Flags field is used up).
  132.      * At present, all flag values are system private.
  133.      * Until further notice, you may not change nor use this field.
  134.      */
  135.     ULONG MoreFlags;
  136.  
  137.     /**** Data beyond this point are Intuition Private.  DO NOT USE ****/
  138. };
  139.  
  140.  
  141. /* --- Flags requested at OpenWindow() time by the application --------- */
  142. #define WFLG_SIZEGADGET     0x00000001 /* include sizing system-gadget? */
  143. #define WFLG_DRAGBAR     0x00000002 /* include dragging system-gadget? */
  144. #define WFLG_DEPTHGADGET    0x00000004 /* include depth arrangement gadget? */
  145. #define WFLG_CLOSEGADGET    0x00000008 /* include close-box system-gadget? */
  146.  
  147. #define WFLG_GIMMEZEROZERO  0x00000400 /* a GimmeZeroZero window */
  148.  
  149. #define WFLG_ACTIVATE     0x00001000 /* when Window opens, it's Active */
  150.  
  151.  
  152.  
  153. struct NewWindow
  154. {
  155.     WORD LeftEdge, TopEdge;  /* screen dimensions of window */
  156.     WORD Width, Height;   /* screen dimensions of window */
  157.  
  158.     UBYTE DetailPen, BlockPen;  /* for bar/border/gadget rendering */
  159.  
  160.     ULONG IDCMPFlags;   /* User-selected IDCMP flags */
  161.  
  162.     ULONG Flags;   /* see Window struct for defines */
  163.  
  164.      APTR FirstGadget; 
  165.  
  166.      APTR CheckMark;
  167.  
  168.     UBYTE *Title;     /* the title text for this window */
  169.  
  170.      APTR Screen;
  171.  
  172.      APTR BitMap;
  173.  
  174.     WORD MinWidth, MinHeight;     /* minimums */
  175.     UWORD MaxWidth, MaxHeight;      /* maximums */
  176.  
  177.     UWORD Type;
  178.  
  179. };
  180.  
  181. #endif
  182.  
  183.